package 越长越合法

func countGood(nums []int, k int) int64 {
	freq := map[int]int{}
	left := 0
	ans := 0
	pairs := 0
	total := len(nums) * (len(nums) + 1) / 2
	for right, num := range nums {
		//pairs 判断直接哈希累加就行(-1 被新数前判断替代)
		pairs += freq[num]
		freq[num]++
		for pairs >= k && left <= right {
			freq[nums[left]]--
			pairs -= freq[nums[left]]
			left++
		}
		ans += right - left + 1
	}
	return int64(total - ans)
	//判断对思路不合理
	//for right, num := range nums {
	//	freq[num]++
	//	if freq[num] == 2 {
	//		cnt++
	//	}
	//	for cnt >= k && left < right {
	//		leftV := nums[left]
	//		freq[leftV]--
	//		cnt--
	//		if freq[leftV] == 0 {
	//			delete(freq, leftV)
	//		}
	//		left++
	//	}
	//	ans += right - left + 1
	//}

}
